其他
程序员的酒后真言
The following article is from CSDN Author 苏宓
提升职业生涯高度最好的办法就是跳槽。 技术栈并不重要。因为每个领域大约有 10 - 20 个核心原则,这才是重要的,技术堆栈只是让工作更加容易罢了,如果缺乏某种技术栈,请不要过度担心。 换工作都是有原因的。如果对工作不满意,也许是时候开始下一征程了。 工作与交际没有太大关系。我在任职过的公司交到了一些好朋友,但这不应该成为我选择其他公司的前提要求。因为我在一些公司没有交到好朋友,但是我可以开心的工作,有些公司我交到了好朋友,但是我工作得并不开心。 工作中实话实说。我学会了对我的经理实话实说,因为只有足够诚实,才能保证我可以在工作中是真实的。可能发生的最坏情况是什么?他开除我?别担心,要是我被开除了,我将在两周内就能找到一份新工作。 工作时间要合理分配。如果在每季度,我不止一次地在凌晨 2 点从待命状态中醒来,那么工作肯定就现了严重的问题,接下来,要么直接去解决这个问题,要么直接选择退出。
一位优秀的经理和一名优秀的工程师有很多共同的品质。 刚进入这个行业的时候,我对技术、编程和计算机科学很痴迷,但现在我没有太多的感觉了。 好的代码是初级工程师都可以理解的代码。伟大的代码是可以被大一 CS 新生理解,因为最好的代码就是根本没有代码。 作为一名工程师,最容易被低估的技能是如何记录。之前总有人向我请教如何才能写好文档,说真的,如果有任何的建议或一门课程能够保证我可以写好文档,即使需要支付很多钱,如 1000 美元一门课程,我也在所不惜。 与上述这一条有些类似,编写好的改革建议是一项很棒的技能。 几乎所有的口水战(如 Vim vs Emacs、Mac 与 Linux 等)都是无关紧要的。 年龄越大,就越欣赏动态语言。 如果我发现自己是公司最聪明的人,那么也是时候离开了。 我不太清楚为什么全栈 Web 开发者的报酬这么低。就技能而言,他们必须要了解前端、后端、不同浏览器之间的工作原理、网络、数据库、缓存、Web 和移动端之间的差异,以及最新的各种框架应用,说真的,你知道为什么他们工资这么低吗? 企业应该雇佣更多的实习生。因为那些精力充沛的小家伙们总是用他们各种新奇的想法“乱搞”,如果他们可以质疑或批评某事时,那就更好了。我喜欢实习生。
不要去见你的偶像。我花了 5000 美元参加了我偶像的课程,他是一个才华横溢的人,但是最后我意识到他和我们其他人一样,在编造; 用 Python、C++ 开发往往可以实现很多不同的事情,因为不同的工具有自己的擅长点。如果你不确定你自己想要干什么,可以选择先学习或使用 Java,它几乎无所不能。 有史以来最伟大的编程语言是 lisp。我应该学习 lisp。 对于初学者来说,最赚钱的编程语言是 SQL。如果你只是了解 SQL 而不会做其他事情,那么就可以借此赚钱。薪酬专员也许能获得 50K;懂 SQL 的薪酬专员,或能获得 90k;在大公司有组织能力的普通员工,40k 美金;具有领导能力和 SQL 技能的员工,且称自己为 PM 可以赚取 15 万美金。 测试很重要,但 TDD(Test-Driven Development,测试驱动开发)是一个“邪教”。 第三方招聘人员是水蛭(榨取他人利益的人)。但是,如果你找到了一个好的招聘人员,请认真与他们建立良好的关系,因为他们可以帮助引导你的职业生涯。那么怎么知道你有没有遇到好的招聘专员?如果他们担任第三方招聘人员超过 3 年,他们可能很糟糕。优秀的招聘人员通常都会去大公司。 期权也许会毫无价值,也许可以让你成为百万富翁。如果公司员工低于 100 人,期权可能一文不值,但如果十年之后,它们可能有很大的价值。 自我价值不能与总薪酬挂钩。资本主义是一种确定自我价值的糟糕方式。 管理者的权力比你想象的要少。如果你对 XYZ 经理为什么不解雇某人保留疑问,那是因为他们不能。 职位的 title 大多无关紧要。不管是来自哪家公司的首席杰出员工或首席工程师,只有你做了什么,完成了什么,才是人们关心的。 提及头衔:在职业生涯的早期,头衔如果发生从初级到中级,到中高级再到高级这样的变化会很好,因为它彰显了你的技能和责任在不断地提高;在职业生涯后期,头衔发生变化也很好,因为它可以让你涨薪。 善待每一个人。不是因为他们会帮助你的事业,而是因为善良本身就是有益的。
为课程、书籍和会议付费是值得的。 如果出现腕管和背部的问题,这可不是开玩笑的。现在还是值得花 1k 的金额来买一台好的设备保护一下。 我遇到过最聪明的人是数学博士。 在高中时,有一个女孩是我的好朋友。那几年里,我们经常聊天、闲逛并分享很多私人的东西,然后突然有一天,有传言我喜欢她之类的。后来,她开始不理我,那种感觉真不太好,不过我不希望她遭受任何恶意的语言攻击,我希望她过的好,很抱歉当时的我没有处理得更好。 你知道成为软件工程师最好的方法是什么吗?你可以结识与你想法相同的人并与之交谈。在这里,你们不一定要有相同的兴趣爱好,只要思考问题的方式相一致就行,这一点非常酷。 技术领域的女性不够多。这一点需要有所改变。我一直在努力地为我们团队的女性工程师提供更多的鼓励和帮助,除此之外,我不知道我还能做些什么。 在我不熟悉一门语言或技术之前,我不会讨厌它们。另外,如果我讨厌某项技术,但是它又真的好用,我还是会向其他人推荐它。 Git 很糟糕,但我只能选择使用它。 我的工作很轻松,因为我的团队中有半技术分析师。所谓半技术,是因为他们懂编程但不懂软件工程。 在你被迫使用浅色模式(网页或不受支持的应用程序)之前,深色模式非常棒。
成为一名优秀的工程师意味着了解最佳实践。成为一名高级工程师意味着知道何时打破最佳实践。 在工作和个人生活之间保持距离是有益的。 我喜欢在欢乐时光和我的同事们一起喝酒。不过,我也更宁愿花些时间与孩子、家人或朋友在一起。 最优秀领导者会竭尽全力支持我的观点,并向我解释“与我的观点相冲突的其他观点”。我正在努力成为像他们一样的人。 副业快走开。不过如果你真的喜欢做它们,那太棒了!即使我有时间做副业,我在 reddit 上写醉酒的帖子也非常忙。 算法和数据限制在某种程度上很重要。 做喜欢的事情并不重要。做不讨厌的事情更重要。 无论工作的技术性如何,越接近产品,就能越接近推动收入增长的关键所在。即使是最先进的公司也是如此。 即使我 Windows 覆盖了所有的工作环境,Linux 也非常重要。 并不是所有伟大的工作都在硅谷,但很多都是在这里。
我曾经非常讨厌编程语言 C#,直到我开始使用它。现在我还是讨厌它,但也认为它是有用的。 函数式语言最伟大的地方在于函数是一流的。所有程序员都知道这一点。 无论一种语言多么伟大或优越,只要人们不使用它,它都会变得无关紧要。 学习一门语言并不难,难的是学习它的生态系统。
配对编程很棒,只是需要很多时间,而往往公司不想花这么久的时间。 与聪明的工程师合作会使我成为一个更好的编码人员。与聪明的非技术同事一起工作会使我成为一个更好的工程师。 不要把时间花在朝九晚五之外的工作上。除非你有一个非常棒的项目,且你自己处于最佳的状态下,否则无须花费更多的时间在工作上。 团建的 99% 时间只是让你去结识新同事。
如果公司是半远程和半现场办公,重要的是要确定远程的人是否会被歧视。 在家办公的第二大缺点是没有白板。 在家办公的第一大缺点是很难向同事学习。除非我(a)有信息和果断提出各种疑问,并且(b)公司有一种良好的文化,即远程与现场办公的员工人人平等,否则我认为,在职业生涯的前 5 年里,最好仅是选择远程或现场一种模式来办公。
过去 10 年的科技格局发生了巨大的变化,但基本面并没有太大变化。 我在一家尖端的初创公司工作,我们不使用 ABC 尖端科技公司提供的最新 XYZ 技术。事实证明,这些新的技术只是研发部门运用的小部分技术之一,他们中的大多数都使用和我们相同的技术。 如果你想使用现代技术,而你的公司仍然在使用 jQuery 进行大部分开发工作,那么你得重新评估一下了。
SQL 为王。MySQL、Postgres、Oracle、SQL Server、SQLite 等数据库仍然是至高无上的。 大多数公司不做流媒体,因为这既困难又复杂。如果你已经工作了 10 年,但还不知道如何处理每秒一万条的数据,别担心,仍有工作机会在等着你。 Airflow 很糟糕。 机器学习项目极其容易失败,它们很复杂且难以实施。 数据领域是一种新的领域。目前没有关于数据工程较好的书籍,直接上手实践吧。
当人死了之后,你想让你的代码成为遗产吗?如果是的话,那现在就多花点时间。如果你像我一样,你的遗产被家人、朋友和生活中的人包裹着,而不是你写的代码,就不要太在意它。 好人、聪明的人、优秀的程序员和工程师都会写出糟糕的代码。不要让代码的质量成为自我价值的因变量。 我从事技术和编码是因为我对技术的热爱。现在我的爱好和工作一样了,工作毁了我的爱好。
我喝醉了,我通常不喝酒,所以我会认为我说的一切可能是日常不敢说的。 我强烈地认为人们应该存钱和投资。如果你有一个 6 位数的工资,尽你最大的努力去最大化。 我变成了我一直讨厌的人:一个在职业生涯中从事科技工作, 但在现实生活中却回避科技的人。也许我真的老了。